#pragma once

namespace liba { class Atom; }

namespace physics
{

template <class T> class Factory
{
public:
	T* Create(const Atom &typeName, class World *world)
	{
		typename Creator <T>::CreationFunc func = Creator <T>::GetInstance()->FindCreationFunc(typeName);
		
		if(func)
			return func(world);

		return NULL;
	}
};

}